// Registry wrapper
// Copyright 2006 (C) Ralph Thomas

#ifndef MISSION_UTIL_REGISTRY_H
#define MISSION_UTIL_REGISTRY_H

#include <string>
#include <adobe/value.hpp>

namespace util {
	//
	/// Get the given value from the registry. The value name should
	/// be in the form of a path, for example "/apps/mission/value".
	///
	/// \param	key	the key to get the value of.
	/// \return	the requested value or an empty g if no
	///		value is available.
	//
	adobe::value_t registry_get( const std::string& key );
	//
	/// Set the given value into the registry.
	///
	/// \param	key	the key to set the value of.
	/// \param	value	the value to set.
	//
	void registry_set( const std::string& key, const adobe::value_t& value );
	//
	/// Monitor the given key for changes.
	///
	/// \param	key	the key to monitor
	/// \param	fn	the function to call when the
	///			value changes.
	/// \return	a connection object which when released stops
	///		the monitoring of the key.
	//
	// TBD.
};

#endif

